Accelerometer-based gait analysis

ABSTRACT

Embodiments of systems and methods determine one or more gait parameters using acceleration readings generated by an accelerometer coupled to a user. Gait parameters determined by various embodiments may include step length, step width, step time, single limb support time, or double limb support time. The accelerometer may be coupled to one of the user&#39;s arms. Exemplary systems may comprise an accelerometer, a processor, and a non-transitory computer readable medium (NTCRM). The processor may process acceleration readings from the accelerometer according to instructions stored on the NTCRM to determine the one or more gait parameters. The processor may communicate the one or more gait parameters to a receiving device. Some embodiments of the system may function as self-contained units and some embodiments may present information corresponding to gait parameters or recommendations regarding gait.

CLAIM OF PRIORITY

This application is a continuation of U.S. patent application Ser. No. 15/434,502, filed Feb. 16, 2017, which claims the benefit of U.S. Provisional Application No. 62/307,167, filed Mar. 11, 2016, the entire contents of both of which are hereby incorporated by reference.

TECHNICAL FIELD

The systems and methods described herein relate to the use of accelerometers to estimate gait parameters.

BACKGROUND

Individuals propel themselves on foot in a variety of ways including walking, running, and ascending or descending stairs or sloped surfaces. Gait may be assessed in terms of a gait cycle, also called a stride. A stride begins when a reference foot (either the left or right) makes contact with the ground and ends when it next contacts the ground. A stride requires three instances when one of the feet makes contact with the ground—two contacts by the reference foot and one contact made by the opposite foot. During the stride, the reference foot spends some time in contact with the ground (called stance) and some time apart from the ground and moving forward (called swing). Both swing and stance of each foot are required to move forward.

A stride is composed of two steps. A step is the action occurring in the interval from the moment that one foot contacts the ground to the moment when the other foot contacts the ground. Step duration is not simply the stance time of one foot. During a walking stride, some time may be spent with both feet touching the ground (called double limb stance) and during a running stride, some time may be spent with neither foot on the ground. Thus, the stance times of each foot may add to more than duration of a walking stride and/or less than the duration of a running stride.

A step may be attributed to either the left foot or the right foot, though actions of both feet are necessary to take a step. A step is often attributed to the foot that is off the ground and moving forward during the step interval. However, steps taken on a gait mat or other instrument may be attributed to the foot touching the mat at the beginning of the step interval.

Steps have attributes sometimes referred to as gait parameters. Step duration is one such parameter and is defined by the beginning and end points of the step. Step frequency is the number of steps taken within a given time period and is the reciprocal of the average step duration during the time period. Step length is the component of the distance between the contact points defining the beginning and end of the step that is in the direction the individual is moving. The walking speed of an individual may be calculated by multiplying step length by step frequency. (Walking, as used herein, may refer to any step-taking activity including, but not limited to, walking, running, ascending, or descending.) Step width is the component of the distance between the contact points that is perpendicular to the direction the individual is moving in the plane of the ground. (Ground, as used herein, refers to any surface on which an individual takes steps and includes, without limitation, floors, stairs, pavement, and natural terrains.)

The portion of a step in which an individual supports his or her weight on a single leg may be referred to as single limb support (SLS) and the portion in which weight is supported on both limbs may be referred to as double limb support (DLS). During DLS, weight may not be supported equally by the legs and DLS may be distinguished from double limb stance which refers to the portion of the step during which both feet are touching the ground. In contrast, when only one foot is in contact with the ground, weight is presumed to be supported by the grounded foot, so there is no need to distinguish between single limb support from single leg stance. The proportions of each step spent in DLS and SLS may be indicative of gait health. In particular, longer periods of DLS may indicate difficulty taking steps. Some gait analysts classify every moment in the gait cycle as either SLS or DLS while others have a third category for transition between SLS and DLS. Under either classification system, both SLS and DLS may be indicative of general health and gait health in particular.

Gait analysis has been used not only to document gait abnormalities but also to determine the underlying causes of the abnormalities and, in some cases, to recommend a treatment. Gait analysis has traditionally been performed in a gait analysis laboratory. Instruments used to perform gait analysis detect a variety of measures associated with walking. Sensor mats, for example, are mats with numerous pressure sensors on which subjects may walk. Sensor mats, in combination with appropriate analytical tools, may generate measures such as those discussed above. However, laboratory-based gait-measuring equipment tends to be expensive, requires that subjects travel to the laboratory, and observes subjects for only the limited time that they are present at the laboratory. The benefits of gait analysis would be available to more patients if it could be conducted using less expensive equipment and the conclusions drawn from gait analysis would be more robust if clinicians could observe patients outside of the laboratory over longer time periods.

In recent years, accelerometers have become smaller, cheaper, more accurate, and more energy efficient. An accelerometer may refer to a device that measures either linear or angular acceleration. However, accelerometers measuring angular acceleration may also be called gyroscopes, gyrometers, or simply gyros. An accelerometer may also refer to a device that measures acceleration in more than one direction. Triaxial accelerometers have three axes that are at least approximately orthogonal to one another. The output readings from accelerometers may be plotted over time and can be viewed as a signal.

While coupling an accelerometer to a user's hip or leg may yield informative data regarding gait, many users prefer wearing accelerometers elsewhere. Wrist-worn accelerometers have become popular among consumers and may allow for observation of data among a greater number of users and for a greater proportion of the day than accelerometers worn on the hip or leg. However, wrist-worn accelerometers present challenges with respect to inferring gait parameters from the acceleration data.

SUMMARY

Embodiments of systems and methods determine one or more gait parameters using acceleration readings generated by an accelerometer coupled to a user. Gait parameters determined by various embodiments may include step length, step width, step time, single limb support time, or double limb support time. The accelerometer may be coupled to one of the user's arms. Exemplary systems may comprise an accelerometer, a processor, and a non-transitory computer readable medium (NTCRM). The processor may process acceleration readings from the accelerometer according to instructions stored on the NTCRM to determine the one or more gait parameters. The processor may communicate the one or more gait parameters to a receiving device. Some embodiments of the system may function as self-contained units and some embodiments may present information corresponding to gait parameters or recommendations regarding gait.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 presents a diagram illustrating an accelerometer-based system for estimating one or more gait parameters according to certain embodiments of the present disclosure.

FIG. 2 presents a diagram illustrating an accelerometer-based system for estimating one or more gait parameters housed in a single device, according to certain embodiments of the present disclosure.

FIG. 3 presents a diagram illustrating an accelerometer-based system for estimating one or more gait parameters comprising a monitor device and separate smart phone according to certain embodiments of the present disclosure.

FIG. 4 illustrates an embodiment of a wrist-worn device according to certain embodiments of the present disclosure.

FIG. 5 presents a plot of the magnitude of acceleration of a wrist-worn accelerometer during two steps and presents figures illustrating limb positions corresponding to the acceleration readings.

FIG. 6 presents a plot of acceleration of a wrist-worn accelerometer during two steps and illustrates the duration of each step as estimated by features of the accelerometer data, according to certain embodiments of the present disclosure.

FIG. 7 presents a flow chart illustrating an accelerometer-based method for estimating step duration, according to certain embodiments of the present disclosure.

FIG. 8 presents a schematic diagram illustrating the changing orientation of an accelerometer on a swinging arm, relative to gravity.

FIG. 9 presents a flow chart illustrating an accelerometer-based method for estimating step length, according to certain embodiments of the present disclosure.

FIG. 10 presents a plot of acceleration of a wrist-worn accelerometer during two steps and illustrates a portion of each step attributed to SLS and to DLS according to certain embodiments of the present disclosure.

FIG. 11 presents a flow chart illustrating a method for estimating SLS duration, according to certain embodiments of the present disclosure.

FIG. 12 presents a flow chart illustrating a method for estimating DLS duration, according to certain embodiments of the present disclosure.

FIG. 13 presents a plot of acceleration of a wrist-worn accelerometer during two steps and illustrates a portion of each step attributed to SLS and to DLS according to certain embodiments of the present disclosure.

FIG. 14 presents a flow chart illustrating a method for estimating DLS time, according to certain embodiments of the present disclosure.

FIG. 15 presents a flow chart illustrating a method for estimating SLS time, according to certain embodiments of the present disclosure.

FIG. 16 presents a flow chart illustrating a method for estimating step width, according to certain embodiments of the present disclosure.

DETAILED DESCRIPTION

Systems and methods estimate gait parameters using accelerometer readings. An accelerometer may be coupled to a user and at least some of the acceleration readings may correspond to the user's steps. An estimated gait parameter may be communicated through an output device, either to the user or to another individual.

Systems

A gait parameter is estimated by a system comprising an accelerometer. An accelerometer may refer to any device that measures either linear or angular acceleration, though accelerometers measuring angular acceleration may be referred to as gyroscopes, gyrometers, or gyros. An accelerometer may refer to a device that measures acceleration in more than one direction. For example, triaxial accelerometers measure acceleration on three axes that may be at least approximately orthogonal to one another. In addition to linear and angular acceleration, some accelerometers also contain a magnetometer that can orient accelerations relative to a magnetic field such as that of Earth. A so-called “9-axis accelerometer” contains a tri-axial accelerometer measuring linear acceleration along three orthogonal axes, angular acceleration around three orthogonal axes, and orientation relative to a magnetic field. A 9-axis accelerometer may also be referred to as an inertial measurement unit (IMU).

The accelerometer may be coupled to an individual whose steps are analyzed. In some embodiments, the accelerometer is coupled to an arm of the individual. In an exemplary embodiment, the accelerometer is coupled to the individual's wrist using a strap or similar means. In a second exemplary embodiment, the accelerometer may be coupled to the individual's torso by, for example, a belt around the hips or a lanyard around the neck.

In some embodiments, the accelerometer measures linear acceleration along three approximately orthogonal axes that are labeled x, y, and z. For triaxial accelerometers, unless otherwise indicated, the x axis runs approximately parallel to the user's dorso-ventral axis, which may also be approximately parallel to the direction the user walks; the y axis runs approximately parallel to the user's anterior-posterior axis, which may also run approximately parallel to the direction of gravity; and the z axis may run approximately parallel to the user's lateral axis. However, especially for wrist-worn accelerometers, users may swing their arms which can cause the x, y, and/or z axes of the accelerometer to lose alignment with the anatomical axes of the user as well as with the direction of gravity. As used herein, x, y, and z may refer to axes of a triaxial accelerometer, and may generally correspond to the dorso-ventral, anterior-posterior, and lateral axes of the user, respectively, accepting that the two sets of axes may not coincide. Likewise, the y axis my generally correspond to the direction of gravity with the understanding that the accelerometer axis may not align with the direction of gravity. Similarly, for biaxial accelerometers, unless otherwise indicated, the axes of the accelerometer may be referred to as the x axis and y axis, with the x axis generally corresponding to the user's dorso-ventral axis and the direction that the user is walking and the y axis generally corresponding to the user's anterior-posterior axis and to the direction of gravity, accepting that the accelerometer axes may not align with the anatomical, gravitational, or directional axes.

The accelerometer may be communicatively coupled to a processor. The processor may include one or more processing units (i.e. processors communicatively coupled to one another). The processor is communicatively coupled to and executes instructions stored on a computer readable data storage (CRDS) (also referred to herein as a non-transitory computer-readable medium). The instructions cause the processor to estimate a gait parameter. Embodiments of the CRDS may include random access memory (RAM) and various types of non-volatile memory including, but not limited to, read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), and/or electrically erasable programmable read-only memory (EEPROM). Embodiments of the CRDS may include magnetic storage (such as hard drives, floppy disks, and magnetic tape) and/or optical storage (such as CDs and DVDs).

Time measuring means may be used to estimate some gait parameters. Time periods may be measured using a variety of means. Because processors typically perform calculations on a regular time cycle, some embodiments count processor cycles as a means for measuring time. If the accelerometer generates outputs at regular time intervals, embodiments may count the number of accelerometer outputs to measure the passage of time. Alternatively, a separate time-measuring device may be used to measure time periods. Examples of alternative time measuring devices include electric clocks such as quartz clocks, synchronous clocks, and radio-controlled clocks that are wirelessly synchronized with a time standard such as an atomic clock.

Embodiments of the system may also include a means for communicating a gait parameter. The communication means (also referred to as an “output device”) may be, for example, a visual display, an audio speaker, or a tactile output to communicate the gait parameter to the user or another individual. Communication means may also include electromagnetic transmitters or physical connectors for communication of gait parameters to a second system or device. Some embodiments may communicate gait parameters and/or suggestions based on gait parameters to the user based on real-time analysis of the user's gait. For example, messages may suggest that a user take longer steps or that the user pause to balance on one foot.

System components named above may consume energy from a power source. Power sources may include various types of batteries as well as devices that collect ambient energy such as sunlight (e.g. photo-voltaic cells), body heat, and body motion. An exemplary embodiment powers its components with a lithium ion battery.

System embodiments may also include a user interface allowing a user to enter information into the computer. A user interface may include, for example, a key pad, touch screen, or microphone coupled to a voice recognition system. A user interface may be used, for example, for the user to enter information about walking conditions such as terrain or a recently sustained injury.

Components of the system may be communicatively coupled to other components. The processor, for instance, may receive information from the accelerometer, send information to the communication means (if any), and both send and receive information from the CRDS. Communicative coupling may be accomplished with or without physical connections such as wires. Any of the communications may be accomplished wirelessly using signal types including radio and infrared. Common wireless communication protocols include Bluetooth (IEEE 802.15), Wi-Fi (IEEE 802.11), cellular communication protocols, and infrared data association protocols. Embodiments using wireless communications may include components such as transmitters and receivers. Systems may also communicate with other devices or networks, for example a personal computer, smartphone or the Internet. In some embodiments, the user may receive and/or send information from the device through an Internet web site instead of or in addition to a user interface present in a device housing the accelerometer.

FIG. 1 illustrates a schematic diagram of a system (100) according to certain embodiments of the present disclosure. The system (100) includes an accelerometer (110) that sends outputs to a processor (120). The dashed line connecting the two components indicates that they are communicatively coupled; information may be transferred from one to another, but does not necessarily require a physical connection. The processor (120) executes instructions stored on a computer-readable data storage (CRDS) (130). The processor (120) may store and retrieve data, such as accelerometer data, from the CRDS (130) and process the data to determine a gait parameter. The processor (120) may communicate the gait parameter to a communication means (140). The components named above are powered by a power supply (150). While this diagram shows one power supply providing energy to each of the components, the system (100) may use multiple power sources. Any configuration of power sources may be used provided that each component receives power, either directly from a power supply or indirectly through other components.

FIG. 2 illustrates a schematic diagram of a system (200) in a portable, self-contained activity tracker (270) according to certain embodiments of the present disclosure. The rectangle surrounding the components indicates that they are all housed in the same device. The activity tracker (270) includes a 3-axis accelerometer (210), a processor configured to function in the activity tracker (220), random access memory (RAM) (230), a display screen (240) visible from the outside of the device, and a rechargeable lithium-ion (Li-Ion) battery (250). The processor (220) executes instructions stored on the RAM (230). The display (240) may perform functions such as informing the user of gait parameters and/or goals based on gait parameters. From time to time, the activity tracker (270) may communicate with a second device (280) using radio signals. The activity tracker (270) contains a Wi-Fi transmitter-receiver (260) that exchanges data with the external device (280). The wireless communication may serve to communicate unprocessed or derived measures of physical activity to the external device (280) which may be communicatively coupled to networks such as the Internet. The wireless communication may be used to transfer updated instructions to the activity tracker (270) from the second device (280).

FIG. 3 illustrates a schematic diagram of a system (300) in which a motion monitor (370) wirelessly transfers acceleration data to an external device (380) for processing, according to certain embodiments. In this embodiment, the external device is a smartphone (380). The motion monitor (370) contains a 9-axis accelerometer/IMU (310), a Bluetooth transmitter (361), and an ambient energy collector (351) to power the other components. The ambient energy collector (351) may, for example, capture energy from the user's body heat. The Bluetooth transmitter (361) transmits raw (unprocessed) accelerometer data to a Bluetooth receiver (362) in the smartphone (380). The Bluetooth receiver (362) then relays the raw acceleration data to the processor (320) which, in turn, processes the acceleration data according to instructions stored on an electrically erasable programmable read-only memory (EEPROM) (330) and determines a gait parameter. The processor (320) may then communicate the gait parameter, or message based thereon, to a user via the display screen (340) on the smartphone (380). Components in the smartphone (380) are powered by a nickel metal-hydride (NiMH) battery (352). The smartphone (380) could, optionally, communicate raw or processed acceleration data to other external devices via cellular frequencies and data protocols. The smartphone could also, optionally, be used as an input device into which a user could enter data such as walking terrain, pain level, or health condition.

FIG. 4 illustrates an embodiment of a wrist-worn accelerometer device (400). Wrist straps (410) coupled to the device housing (420) keep the device housing (420) in an approximately fixed orientation relative to the forearm (430). The device housing (420) houses a triaxial accelerometer (not shown). Thus, as the angle of the forearm (430) changes relative to gravity, the gravitational pull along each of the axes may change. The device housing (420) comprises a display screen (440) that may display messages to the user. This particular embodiment (400) may remind the user to walk.

Methods—

System embodiments may determine one or more gait parameters using a variety of methods. Some method embodiments estimate gait parameters using accelerometer data from an accelerometer coupled to a user's wrist or another part of the user's arm. An arm may approximate a line segment swinging on the pivot point of the shoulder. Typically, individuals under ordinary conditions swing one of their arms once per stride. That is, the arm returns to its starting position and direction once every two steps. The amount of forward arm swing, as measured by either angle or arc length, may be different than the amount of backward arm swing.

During a cycle of an arm swing, combined linear acceleration may reach a minimum at both the end of a forward arm swing and at the end of a backward arm swing, in each case when the angle of the arm relative is momentarily fixed. Conversely, the maximum combined accelerations during a stride may occur when the arm is mid-swing and approximately parallel to the force of gravity. There are often two peaks per stride—one during the forward arm swing and one during the backward arm swing. The moment at which a foot makes contact with the ground corresponds approximately to a minimum acceleration of an arm. The foot that is on the same side as a wrist-worn accelerometer makes contact at approximately the end of the backward arm swing and the foot opposite the side of the accelerometer makes contact at approximately the end of the forward arm swing.

FIG. 5 presents a sample of acceleration data (500) from a user's wrist-worn accelerometer while taking two steps. The stick FIGS. 560, 570, 580, 590) illustrate the position of the user's limbs corresponding to peaks and valleys in the data. The x axis (501) represents time in 1/16th second increments and the y axis (502) corresponds to the combined magnitude of acceleration in 1/1000 of g. increments along the axes of a triaxial accelerometer. Each of the two steps comprises a peak (520, 540) which are separated from adjacent peaks by three valleys (510, 530, 550). The peak for each of the steps (520, 540) is bifurcated into two sub-peaks (521, 523; 541, 543). Within each peak, the two sub-peaks are separated from one another by a trough (522, 542). The cause of these bifurcations is unknown, but they appear typical of most walking data from wrist-worn accelerometers.

In FIG. 5, each of the stick FIGS. 560, 570, 580, 590) illustrate the position of the limbs corresponding to the acceleration reading of the peak or valley above the particular stick figure. The first step begins when the user's right heel (561) first contacts the ground. At this moment, the arm with the accelerometer (the left arm, 562) is momentarily motionless as the direction of arm swing changes and the combined acceleration at the wrist is approximately that of gravity (g). This corresponds to the valley (510) that is approximately at g (800/1000 g). The right arm (563) is in the back-most position of its swing and the left leg (564) is pushing off of the left foot. Peak (520) occurs when the arm with the accelerometer (the left arm, 572) is mid-swing and pointing approximately parallel to the force of gravity as it swings backward. The right arm (573) is also mid-swing and approximately parallel to gravitational force. Weight is supported on the right leg (571) as the left leg (574) is swinging. The first step ends and the second step begins when the left heel (584) contacts the ground. The left arm (with accelerometer, 582) is motionless at the back-most portion of its swing and the accelerometer registers only the force of gravity corresponding to valley (530). The right arm (583) is at the forward-most part of its swing and the right leg (581) is pushing off the ground. Peak (540) occurs when the arm with the accelerometer (the left arm, 592) is mid-swing and pointing approximately parallel to the force of gravity as it swings forward. The right arm (593) is also mid-swing and approximately parallel to gravitational force. Weight is supported on the left leg (591) as the right leg (594) is swinging. The second step ends when the left heel (564) contacts the ground as it did for the first step.

Gait Speed

The rate at which an individual moves on foot, gait speed, may be computed as the ratio of step length to step duration—the amount of time from the beginning of a step to the end of the step. Embodiments estimating gait speed estimate both step length and step duration.

Step Duration

A step begins at the moment that one of the feet first makes contact with the ground and ends at the moment the other foot next contacts the ground. Since foot contact occurs at approximately the moment that the arms have reached the end of their respective swings, combined acceleration along the x and y axes of an accelerometer reaches a minimum at the time one step ends and the next begins. Step duration (SD) may therefore be estimated as the time between two step minima—those acceleration minima corresponding to the end point of an arm swing as opposed the trough between the sub-peaks or other local minima caused by noise in the data. A minimum may refer to an accelerometer reading that is flanked on both sides by higher readings; the reading immediately preceding a minimum and the reading immediately following a reading are each greater than the minimum data point.

FIG. 6 presents the acceleration plot of FIG. 5 with duration of the first and second steps (SD1 and SD2, respectively) indicated by brackets. Step duration may be estimated as the difference between the time at which one step minimum occurred and the time at which the next step minimum occurred. In FIG. 6, the first step begins at the minimum (510) occurring at approximately 136 16ths of a second and ends at the minimum (530) occurring at approximately 149 16ths of a second. Thus, SD1=(149−136)/16 of a second or 13/16ths of a second. Step 2 begins at 149 16ths of a second and ends at the minimum (550) occurring at approximately 167 16ths of a second. SD2=(167−149)/16 of a second or 19/16ths of a second.

To determine the duration of a particular step via processor implemented instructions, some embodiments analyze accelerometer data as a “sliding window.” A data window (window) refers to a group of accelerometer readings (also called data points) generated at a given amount of time relative to a reference data point. The readings in a window are considered in an analysis. For example, some embodiments analyze data generated in the half second before the reference data point. If analysis takes place in real time, the reference data point may be the most recently generated data point. But post-hoc analysis may use a past reference data point that progresses to another reference data point (also referred to as a focal data point) once the window associated with the first data point has been analyzed. The window “slides” in that the reference data point advances by one reading (or a number of readings less than the number of readings in the window) for each analysis. Thus, for sliding windows advancing by a single data point from one analysis to the next, the group of readings being analyzed differs by only the first and last data points in the window; the first data point is new and the last data point is no longer part of the group considered. Some windows may slide by advancing more than one data point at a time provided there is at least one common data point between two windows. Some embodiments use contiguous windows (in which the first data point in a window is the reading immediately following the last data point of the previous window) and some embodiments use separated windows (in which windows are separated by unanalyzed data points.

Some embodiments adjust window size as a function of acceleration data. For example, some embodiments analyze a window that is approximately half the duration of the fundamental frequency determined by an autocorrelation function. (Note that the autocorrelation function may yield the typical step duration over a period of time but does not determine the duration of a particular step.) If halving the duration yields a fractional number of data points, some embodiments may, for example, round down to the time period with the next lowest whole number of data points.

Some embodiments use sliding windows as a tool to distinguish step minima (those marking the farthest point of an arm swing) from other local minima. A local minimum may refer to a downward inflection point-an acceleration reading flanked on both sides by higher readings. For example, some embodiments count a point as a step minimum only if is the lowest reading in the window that is flanked by higher points. For these embodiments, determining an appropriate window size is important to identify steps. If a window is too long, steps may be missed and if the window is too short, local minima that are not steps may be counted as such. After identifying the step minima in the acceleration signal, the time between each identified step minimum may approximate the time for an individual step.

FIG. 7 presents a flow chart illustrating a computer-implemented method (700) of determining step duration, according to certain embodiments. After the start (701), the fundamental frequency from an autocorrelation function is determined (710). Window size is set at half the fundamental frequency of the autocorrelation (720). If half the time of the fundamental frequency includes a fraction of an accelerometer reading, the window size rounds down to the next whole number of readings (720). Starting with the first reading in a window, the method (700) queries whether the reading is lower than both the immediately previous reading and the immediately following reading (730). If not, analysis proceeds to the next reading (735). If the reading is a local minimum (flanked by greater readings), the method then queries whether the reading is the only local minimum in its window (740). If so, the single local minimum is selected. If there are one or more other local minima in the window, the lowest of the local minima is selected (745). The time of the selected local minimum (Ti) is then accessed (750). Step duration is estimated as the time between Ti and T₀—the time at which the previous step minimum occurred (760). The method (700) then queries whether to continue (780). If so, analysis proceeds to the next window (790). If not, the method (700) ends (799).

Step Length

Determining step length from wrist-worn accelerometer data has proven challenging, particularly when data on angular acceleration is absent. Some embodiments calculate step length as a function of the distance the hand travels when swinging during a step.

FIG. 8 illustrates arm position as a simple line segment pivoting around a point. The shoulder (810) is the pivot point and the hand (820) functions as the end of the line segment. The arm from shoulder to hand is represented as a dashed line segment (830) having a length of L. An accelerometer (840) having two orthogonal axes (x and y) is coupled to the wrist. In position P, the arm is parallel to the direction of gravity. Position F is the forward-most position of the arm during a swing and position B is the back-most position of the arm. The angle of arm swing between position P and position F is labeled θ_(F) and the angle of arm swing between position P and position B is labeled θ_(B). The arc length, the distance the hand travels from position P to position F, may be referred to as a_(F) and the arc length the hand travels from position P to position B, may be referred to as a_(B). a_(F) may be calculated as θ_(F)*L and as may be calculated as θ_(B)*L where θ_(F) and θ_(B) are measured in radians.

As FIG. 8 illustrates, the force of gravity acts like a constant acceleration in the direction opposite gravitational pull. In position P, downward force is caused both by gravity and the centripetal force of the arm swinging on its axis. In positions F and B, when the arm is momentarily stationary, gravity is the primary force acting on the accelerometer. Some embodiments determine values for θ_(F) and θ_(B) by measuring the components of gravitational pull on the x and y axes of an accelerometer at positions F and B, respectively. For example, some embodiments measuring acceleration along x and y axes may calculate either θ_(F) or θ_(B) as the arctangent of the ratio of force along the x axis to force along they axis or as the arccosine of the ratio of acceleration along the y axis to total gravitational pull. If step length is calculated as a function of total arm swing (the sum of a_(F) and a_(B)), the method need not distinguish whether the arm swing is in the forward (a_(F)) or backward (a_(B)) direction. Some embodiments measuring acceleration along three axes determine θ as a function of how gravitational pull is distributed among the three axes and may compensate for the accelerometer rotating about the wrist as the arm swings.

The arc length that the hand travels during an arm swing is a function of the sum of a_(F) and a_(B) (a_(total)) and the length of the user's arm (L). Some embodiments use a standard length for L. The standard may be a global measure of central tendency for arm length or may be informed by factors such as the user's height, age, gender, or an actual measurement of the user's arm. As explained for FIG. 8, total arc length (a_(total)) may be calculated, for example, as θ_(total)*L where θ_(total) is measured in radians. Some embodiments calculate step length as equal to the arc length of arm swing. Some embodiments calculate step length as a function of the arc length of arm swing. For example, some embodiments may multiply the arc length of arm swing by a coefficient to obtain step length.

FIG. 9 is a flow chart illustrating a method (900) for estimating step length, according to certain embodiments. After the start (701), the fundamental frequency (FF) for a sample of data using an autocorrelation function is determined (710). Window size is set at half the fundamental frequency of the autocorrelation (720). If half the time of the fundamental frequency includes a fraction of an accelerometer reading, the window size rounds down to the next whole number of readings (720). Starting with the first reading in a window, the method (900) queries whether the reading is lower than both the immediately previous reading and the immediately following reading (730). If not, analysis proceeds to the next reading (735). If the reading is a local minimum (flanked by greater readings), the method then queries whether the reading is the only local minimum in its window (740). If so, the single local minimum is selected. If there are one or more other local minima in the window, the lowest of the local minima is selected (745). Once a minimum is selected, arm angle θ₁ (the method does not distinguish whether the arm swing is in the forward or backward direction) may be calculated as arctangent of the ratio of measured acceleration along the accelerometer's x axis (f_(x)) to measured acceleration along the accelerometer's y axis (f_(y)) (950). Next, hand arc length is calculated by multiplying the sum of θ₁ and θ₀ (each expressed in radians) by the length of the user's arm (L) (960). θ₀ is the arm angle calculated for the immediately previous combined acceleration minimum. Step length is estimated as the hand arc length of the arm swing multiplied by a constant c (970). The method (900) then queries whether to continue (780). If so, analysis proceeds to the next window (790). If not, the method (900) ends (799).

Single and Double Limb Support

Single limb support (SLS) and double limb support (DLS) may be important measures for assessing gait health. Those with balance disorders or other difficulties walking tend to exhibit a higher proportion of their gait cycle in DLS and a lower proportion in SLS. Some embodiments estimate SLS and/or DLS through processor-implemented analysis of an acceleration signal wherein the accelerometer is attached to the arm of a user. In some embodiments, the accelerometer may be a triaxial accelerometer and the processor analyses the combined magnitude of acceleration from all three axes.

FIG. 10 presents the acceleration plot of FIG. 5 and delineates time periods corresponding to durations of both SLS and DLS, according to certain embodiments. The specified time periods may not correspond exactly to the times when SLS and/or DLS is occurring but estimate the amount of time spent in each state. In this embodiment, the times for SLS and DLS do not add to the total step duration (SD). Time in a step not spent in SLS or DLS may be referred to as the transitional phase of a step. For each of the two steps, the embodiment estimates the duration of SLS as the time from the step minimum marking the beginning of the step (510, 530) to the local minimum separating the two sub-peaks of the step (522, 542, respectively). SLS time for the first step (SLS1) is estimated as being the amount of time from step minimum 510 to local minimum 522 which is approximately 7/16ths of a second. The proportion of the first step spent in SLS is estimated to be SLS1/SD1 or 8/13ths of the step. Likewise, SLS time for the second step (SLS2) is estimated as the amount of time from step minimum 530 to local minimum 542 which is approximately 9/16ths of a second. The proportion of the second step spent in SLS is estimated to be SLS2/SD2, or 9/18ths (half) of the step. For each of the two steps shown in the plot, the duration of DLS is estimated to be the time from the second sub-peak of the step (523, 543) to the step minimum marking the end of the step during which the sub-peaks occurred (530, 550, respectively). DLS time for the first step (DLS1) is estimated as being the amount of time from sub-peak 523 to step minimum 530 which is approximately 4/16ths (one quarter) of a second. The proportion of the first step spent in DLS is estimated to be DLS1/SD1 or 4/13ths of the step. Likewise, DLS time for the second step (DLS2) is estimated as the amount of time from sub-peak 543 to step minimum 550 which is approximately 7/16ths of a second. The proportion of the second step spent in DLS is estimated to be DLS2/SD2. or 7/18ths of the step.

Similar to embodiments described for estimating step duration, some processor-implemented embodiments determine a time duration for a first sliding window. Some embodiments use a predetermined time span for the sliding window. For example, some embodiments analyze data generated in the third (⅓) of a second before the reference data point while some analyze data generated in the half (0.5) of a second before the reference data point. However, some embodiments adjust the window size as a function of acceleration data. For example, some embodiments analyze data points in a window that is approximately half the fundamental frequency determined by an autocorrelation function applied to accelerometer walking data. If halving the fundamental frequency yields a fractional number of data points, some embodiments may, for example, round up or down to the time period with the next highest or lowest, respectively, whole number of data points.

Some embodiments use sliding windows to identify beginning and end points of steps. A step may occur between two step minima where a step minimum may refer to an acceleration minimum that takes place when the arm has reached the end of its swing, either in the forward or backward positions. Some embodiments count a point as a step minimum only if is the lowest local minimum (a reading flanked on both sides by greater readings) in the window.

Some embodiments may determine a second sliding window that is shorter than the first sliding window. The second sliding window may serve to identify the trough separating the sub-peaks in a peak. As with the first sliding window, the second sliding window may, for example, be a fixed duration or may be a function of accelerometer readings. An embodiment may, for example, use a fixed duration of a quarter of a second. Alternatively, an embodiment may set the second sliding window as, for example, a quarter of the fundamental frequency determined by an autocorrelation function. Peaks and troughs, as defined by the second sliding window, are the highest local maximum (flanked on both sides by lower points) and the lowest local minimum (flanked on both sides by higher points) within a window.

Some embodiments calculate SLS time as the amount of time from a valley as determined according to the first sliding window to the next trough as determined by the second, shorter, sliding window. Within an episode of walking (a walk), the average SLS time per step may be calculated as the cumulative SLS time for a number of steps divided by the cumulative step duration for those steps. Some embodiments screen the data by discarding estimates for steps in which there are not at least two peaks and three valleys between two adjacent valleys as determined by the first (longer) sliding window.

FIG. 11 presents a flow chart illustrating an embodiment of a processor-implemented method (1100) for estimating SLS. After the start (701), the fundamental frequency (FF) for a sample of data (combined acceleration of all axes) is determined using an autocorrelation function (710). Windows of two sizes are selected; WS₁ is half (0.5) of FF and WS₂ is one quarter (0.25) FF (1120). For both windows, window duration is rounded down to the next lowest whole number of accelerometer readings (1120). The method (1100) then queries if the focal reading (the reading being examined) is the lowest local minimum in WS₁ (730). If not, analysis proceeds to the next reading (735). If the focal reading is the lowest minimum in WS₁, the time at which the focal reading was generated (T₀) is recorded (1133). Analysis then proceeds to the next reading (1137). The method (1100) then queries if the focal reading is the lowest minimum in WS₂ (1150). If not, analysis proceeds to the next reading (1137). If the focal reading is the lowest minimum in WS₂, the time at which the focal reading was generated (T₁) is recorded (1155). The method (1100) then queries whether there have been at least 3 valleys and two peaks (within the second, shorter window) in the time period from T₀ to T₁ (1160). If not, analysis proceeds to the next reading (735). If so, the method (1100) estimates the amount of SLS time to be the difference between T₁ and T₀ (1170). The fraction of the step spent in SLS is estimated as SLS time divided by step duration (SD) (1170). The method (1100) then queries whether to continue (780). If not, the method (1100) ends (799). If analysis continues, analysis proceeds to the next reading (735) where the method (1100) queries if the focal reading is the lowest minimum in WS₁ (730). Step 730 effectively scans for the beginning of the next step.

Some embodiments calculate DLS time as the amount of time starting at the second peak as determined by a second (shorter) sliding window to the next valley as determined by the first (longer) sliding window. The “second valley” is the second relative to the beginning of a step defined by a valley determined by the first (longer) sliding window.

FIG. 12 presents a flow chart illustrating an embodiment of a processor-implemented method (1200) for estimating DLS. After the start (701), the fundamental frequency (FF) for a sample of data is determined using an autocorrelation function (710). Windows of two sizes are selected; WS₁ is half (0.5) of FF and WS₂ is one quarter (0.25) FF (1120). For each window, window duration is rounded down to the next lowest whole number of accelerometer readings (1120). The method (1200) then queries if the focal reading (combined acceleration of all axes) is the lowest minimum in WS₁ (730). If not, analysis proceeds to the next reading (735). If the focal reading is the lowest local minimum in WS₁, the time at which the focal reading was generated (T₀) is recorded (1133). Analysis then proceeds to the next reading (1137). The method (1200) then queries whether the focal reading is the greatest maximum in WS₂ (1240). If the focal reading is not the greatest local maximum in WS₂, analysis advances to the next reading (1137). If the focal reading is the greatest maximum in WS₂, the method (1200) queries whether the focal reading is the second maximum (within WS₂) to occur since T₀ (1250). If not, a counter is incremented (1253) and analysis advances to the next reading (1137). If the focal reading is the second maximum (within WS₂) to occur since T₀, the time of the focal reading is recorded as T₁ (1257).

Analysis then proceeds to the next reading (1260). The method (1200) then queries whether the focal reading is the least minimum within WS₁ (1270). If not, analysis advances to the next reading (1260). If the focal reading is the least minimum within WS₁, the time of the focal reading is stored as T₂ (1275). DLS time is estimated as the difference between T₂ and T₁ (1280). The fraction of the step spent in DLS is estimated as DLS time divided by step duration (1280). The amount of DLS time is then added to a cumulative tally of SLS time during the walk (1290) which, when divided by the duration of the walk, yields the average proportion of DLS time for steps taken during the walk. The method (1200) then queries whether to continue (780). If not, the method (1200) ends (799). If analysis continues, analysis proceeds to the next reading (735) where the method (1200) queries whether the focal reading is the lowest minimum in WS₁, effectively scanning for the beginning of the next step (730).

Some embodiments estimate SLS and DLS using threshold crossing points in addition to peaks and valleys. One embodiment, for example, estimates DLS time as the time from a valley marking the beginning of a step to the time at which acceleration readings first exceed a threshold. The valley may be determined, for example, by a sliding window. Correspondingly, some embodiments estimate SLS time as starting when accelerometer readings first exceed a threshold and ending at the valley marking the end of a step.

FIG. 13 presents the acceleration plot of FIG. 5 and delineates time periods corresponding to the durations of both SLS and DLS, according to certain embodiments. The specified time periods do not necessarily correspond to the times when SLS and/or DLS are occurring but estimate the amount of time spent in SLS and DLS. A horizontal dashed line (1303) at gravitational acceleration (g) represents a threshold set at that level. In this embodiment, the times for SLS and DLS add to the total step duration (SD). For each of the two steps shown in the plot, the DLS time is estimated to be the time from the valley marking the beginning of a step (510, 530) to the first time (within the step) in which acceleration readings exceed threshold 1303 (1315, 1335 respectively). DLS time for the first step (DLS1) is estimated as being the amount of time from valley 510 to threshold crossing 1315, which is approximately 2/16ths (one eighth) of a second. The proportion of the first step spent in DLS is estimated to be DLS1/SD1 or 2/13ths of the step. SLS time for the first step (SLS1) is estimated as being the amount of time from threshold crossing 1315 to valley 530, which is approximately 11/16ths of a second. The proportion of the first step spent in SLS is estimated to be SLS1/SD1 or 11/13ths of the step. DLS time for the second step (DLS2) is estimated as the amount of time from valley 530 to threshold crossing 1335 which is approximately 2.5/16ths of a second. The proportion of the second step spent in DLS is estimated to be DLS2/SD2. or 2.5/18ths of the step. SLS time for the second step (SLS2) is estimated as being the amount of time from threshold crossing 1335 to valley 550, which is approximately 15.5/16ths of a second. The proportion of the first step spent in SLS is estimated to be SLS1/SD1 or 15.5/18ths of the step.

Methods of estimating SLS and DLS, such as that presented visually in FIG. 13, may be executed by processors in a numerical fashion. Crossing of a threshold may, for example, be determined if a reading is greater than a threshold number. Determination of various maxima and minima may be determined using methods including those described herein. For example, a step minimum may be determined if a reading is flanked on either side by higher readings and is the least such inflection point in a window of a given duration.

FIG. 14 presents a flow chart illustrating an embodiment of a processor-implemented method (1400) for estimating DLS. After the start (701), the fundamental frequency (FF) for a sample of data (combined acceleration of all axes) is determined using an autocorrelation function (710). Window size WS₁ is half (0.5) of FF (1420). Window duration is rounded down to the next lowest whole number of accelerometer readings (1420). The method (1400) then queries if the focal reading (the reading being examined) is the lowest local minimum in WS₁ (730). If not, analysis proceeds to the next reading (735). If the focal reading is the lowest minimum in WS₁, the time at which the focal reading was generated (T₀) is recorded (1133). Analysis then proceeds to the next reading (1137). The method (1400) then queries if the focal reading is the greater than a threshold (1450). In some embodiments, the threshold is 1 g. If not, analysis proceeds to the next reading (1137). If the focal reading is greater than the threshold, the time at which the focal reading was generated (T₁) is recorded (1155). The method (1400) estimates the amount of DLS time to be the difference between T₁ and T₀ (1170). The method (1400) then queries whether to continue (780). If not, the method (1400) ends (799). If analysis continues, analysis proceeds to the next reading (735) where the method (1400) queries if the focal reading is the lowest minimum in WS₁ (730). Step 730 effectively scans for the beginning of the next step.

FIG. 15 presents a flow chart illustrating an embodiment of a processor-implemented method (1500) for estimating SLS. After the start (701), the fundamental frequency (FF) for a sample of data is determined using an autocorrelation function (710). Window size WS₁ is half (0.5) of FF (1420). Window duration is rounded down to the next lowest whole number of accelerometer readings (1420). The method (1500) then queries if the focal reading (combined acceleration of all axes) is the lowest minimum in WS₁ (730). If not, analysis proceeds to the next reading (735). If the focal reading is the lowest local minimum in WS₁, analysis proceeds to the next reading (1137). The method (1500) then queries whether the focal reading is greater than a threshold (1450). In some embodiments, the threshold is 1 g. If the focal reading is not greater than the threshold, analysis advances to the next reading (1137). If the focal reading is greater than the threshold, the time of the focal reading is recorded as T₁ (1257). Analysis then proceeds to the next reading (1260). The method (1500) then queries whether the focal reading is the least minimum within WS₁ (1270). If not, analysis advances to the next reading (1260). If the focal reading is the least minimum within WS₁, the time of the focal reading is stored as T₂ (1275). SLS time is estimated as the difference between T₂ and T₁ (1580). The amount of SLS time is then added to a cumulative tally of SLS time during the walk (1290) which, when divided by the duration of the walk, yields the average proportion of SLS time for steps taken during the walk. The method (1500) then queries whether to continue (780). If not, the method (1500) ends (799). If analysis continues, analysis proceeds to the next reading (735) where the method (1500) queries if the focal reading is the lowest minimum in WS₁ (730), effectively scanning for the beginning of the next step.

Step Width

Step width is the component of the distance between the contact points of the feet that is perpendicular to the direction the individual is moving. Step width may be an important indicator of conditions such as obesity and balance disorders. Some embodiments estimate step width as a function of acceleration along an axis approximately parallel to the user's lateral anatomical axis. Of these embodiments, some estimate step width as a function of the double integral. For example, some of these embodiments multiply the double integral by a coefficient selected to accommodate the particularities of a specific accelerometer or type of accelerometer. An integral, or area under the signal curve, may be estimated using a Riemann sum or other techniques known to those in the art. The integral may taken from the beginning of the step to the end of the step as determined by various methods discussed herein.

Some embodiments screen data on a Z axis to determine whether the data should be discarded from consideration. For example, some embodiments do not estimate width of a particular step if readings on a Z axis of the accelerometer exceed a threshold. Readings from the Z axis exceeding a threshold may indicate that part of acceleration in the direction of the Z axis is caused by rotation of the wrist, waist, or other body part to which the accelerometer is coupled rather than linear lateral motion.

Once estimated, step width may be used with other estimated measures. For example, some embodiments calculate a step ratio—the ratio of step length to step width. Step ratio may be more informative than step width alone since step width tends to increase with step length even among healthy individuals.

FIG. 16 presents a flow chart illustrating an embodiment of a processor-implemented method (1600) for estimating step width, according to the present disclosure. After the start (701), the fundamental frequency is determined using an autocorrelation function (710). Window size is set at half the fundamental frequency of the autocorrelation (720). If half the time of the fundamental frequency includes a fraction of an accelerometer reading, the window size rounds down to the next whole number of readings (720). Starting with the first reading in a window, the method (1600) queries whether the reading is lower than both the immediately previous reading and the immediately following reading (730). If not, analysis proceeds to the next reading (735). If the reading is a local minimum (flanked by greater readings), the method then queries whether the reading is the only local minimum in its window (740). If so, the single local minimum is selected. If there are one or more other local minima in the window, the lowest of the local minima is selected (745). The time of the selected local minimum (T₁) is then accessed (750). The method (1600) then queries whether any reading from the z axis of the accelerometer exceeds a threshold (1660). If so and if analysis continues (780), analysis proceeds to the next window (790). If not, step width is estimated as a constant (c) multiplied by the double integral of acceleration on the z axis from time T₀ to time T₁ (1670). To is the time at which the immediately previous window minimum (lowest minimum in the window) occurred. The method (1600) then queries whether to continue (780). If so, analysis proceeds to the next window (790). If not, the method (1600) ends (799).

Gait Symmetry

In a healthy gait, the steps of one foot tend to be similar to those of the other. Differences between the left foot and right foot with respect to parameters such as those discussed herein may indicate a problem manifesting itself in an individual's gait. Some device embodiments may compare gait metrics of the left leg to those of the right leg to assess gait symmetry. Embodiments may use averages or other measures of central tendency for gait parameters of each foot. Embodiments may compare gait metrics of the left leg to those of the right leg over a variety of time periods depending on the particular application of the gait symmetry measurement. For example, some embodiments may assess gait symmetry based on averages of the last minute. Some embodiments may assess gait symmetry from the beginning of an episode of walking. Embodiments need not ascertain which metrics are attributable to the left leg and which are attributable to the right leg. An embodiment may assess gait symmetry if it can distinguish the activity attributable to one leg from activity attributable to the other, even without determining which leg is the left or right.

Some embodiments may assess gait in real time and provide the user feedback regarding his or her gait symmetry. Some embodiments may provide automated gait coaching. For example, a system embodiment may advise the user to take longer steps with the left leg.

Gait Variability

Variation among steps of a single leg and/or variation among strides may also be indicators of gait health, with higher variation indicating potential problems manifesting in gait. However, high variation of a gait parameter does not necessarily indicate a problem. For example, walking on uneven terrain may cause an individual with an otherwise healthy gait to have high variability among steps or strides. Gait variation may refer to the variation of any gait parameter and variation may be quantified using a variety of measures such as variance, standard deviation, and average deviation.

Some embodiments may assess gait in real time and provide the user feedback regarding his or her gait symmetry. Some embodiments may provide automated gait coaching. For example, a system embodiment may provide an audible and/or visible cadence beat and advise the user to take steps on the beat, thus encouraging more regular step duration.

The above description is neither exclusive nor exhaustive and is intended neither to describe all possible embodiments (also called “examples”) nor to limit the scope of the claims. Claimed embodiments may include elements in addition to those in the described embodiments and, in some cases, may contain only a subset of the elements described in a particular embodiment. Embodiments may contain any combination of elements in the described embodiments in addition to elements not expressly described. As used herein, the articles “a” and “an” may include one or more than one of the noun modified by either without respect to other uses of phrases such as “one or more” or “at least one.” The word “or” is used inclusively unless specified otherwise. Terms such as “first,” “second,” “third” and so forth are used as labels to distinguish elements and do not indicate sequential order unless otherwise indicated. In addition to the embodiments described above, embodiments include any that would fall within the scope of the Claims, below. 

1-33. (canceled)
 34. A device for determining a double limb support time of a user based at least in part on acceleration data comprising a plurality of acceleration readings, the device comprising at least one processor and at least one memory comprising instructions, the at least one memory and the instructions configured to, with the at least one processor, cause the device to at least: receive the plurality of acceleration readings, wherein the plurality of acceleration readings is generated by an accelerometer measuring acceleration of the user's arm; identify a first time at which a first reading of the plurality of acceleration readings was generated, wherein the first reading is a lowest local minimum reading during a first window; identify a second time at which a second reading of the plurality of acceleration readings was generated, wherein the second reading is a first occurring reading to exceed a threshold after the first reading; determine the double limb support time by determining a difference between the first time and the second time, wherein the double limb support time is indicative of at least a portion of a step in which the user's weight is at least partially supported on both limbs; and provide data associated with the double limb support time to a recipient device, wherein the recipient device provides a perceivable indication associated with the data.
 35. The device of claim 34, wherein the at least one memory and the instructions are further configured to, with the at least one processor, cause the device to at least determine a fundamental frequency using an autocorrelation function applied to a plurality of readings of the plurality of acceleration readings and in which a duration of the first window is a fraction of the fundamental frequency.
 36. The device of claim 34, wherein the at least one memory and the instructions are further configured to, with the at least one processor, cause the device to at least compare double limb support times of one or more even numbered steps to double limb support times of one or more odd numbered steps to determine a measure of symmetry and provide the measure of symmetry to the recipient device.
 37. The device of claim 34, wherein the at least one memory and the instructions are further configured to, with the at least one processor, cause the device to at least determine a variability measure of a plurality of double limb support times and provide data associated with the variability measure to the recipient device.
 38. The device of claim 34, wherein the recipient device comprises at least one of: a non-transitory computer-readable medium; a recipient device communicatively coupled to the at least one processor using a network; an electromagnetic transmitter; or a user interface.
 39. The device of claim 38, wherein (a) the recipient device comprises the user interface, and (b) the user interface comprises one or more of: a visual display, an audio speaker, or a tactile output.
 40. The device of claim 34, wherein the at least one processor is powered by one or more of: a battery, a photovoltaic cell, a body heat ambient energy collector, or a body motion ambient energy collector.
 41. The device of claim 34, wherein the time at which the first reading was generated and the time at which the second reading was generated are determined relative to one or more of: time cycles of the at least one processor, readings from the accelerometer, an electric clock, a quartz clock, or a radio-controlled clock that is wirelessly synchronized with an atomic clock.
 42. The device of claim 34 in which the at least one processor: adds the double limb support time to a cumulative double limb support time; and provides data associated with the cumulative double limb support time to the recipient device.
 43. A method for determining a double limb support time of a user based at least in part on acceleration data comprising a plurality of acceleration readings, the method comprising: receiving, by one or more processors of a device, the plurality of acceleration readings, wherein the plurality of acceleration readings is generated by an accelerometer measuring acceleration of the user's arm; identifying, by the one or more processors of the device, a first time at which a first reading of the plurality of acceleration readings was generated, wherein the first reading is a lowest local minimum reading during a first window; identifying, by the one or more processors of the device, a second time at which a second reading of the plurality of acceleration readings was generated, wherein the second reading is a first occurring reading to exceed a threshold after the first reading; determining, by the one or more processors of the device, the double limb support time by determining a difference between the first time and the second time, wherein the double limb support time is indicative of at least a portion of a step in which the user's weight is at least partially supported on both limbs; and providing, by the one or more processors of the device, data associated with the double limb support time to a recipient device, wherein the recipient device provides a perceivable indication associated with the data.
 44. The method of claim 43 further comprising: determining a fundamental frequency using an autocorrelation function applied to a plurality of readings of the plurality of acceleration readings; and setting a duration of the first window as a fraction of the fundamental frequency.
 45. The method of claim 43 further comprising: comparing double limb support times of one or more even numbered steps to double limb support times of one or more odd numbered steps to determine a measure of symmetry; and providing the measure of symmetry from the one or more processors to the recipient device.
 46. The method of claim 43 further comprising: determining a variability measure of a plurality of double limb support times; and providing data associated with the variability measure from the one or more processors to the recipient device.
 47. The method of claim 43, wherein the recipient device comprises at least one of: a non-transitory computer-readable medium; a recipient device communicatively coupled, by a network, to the one or more processors; an electromagnetic transmitter; or a user interface.
 48. The method of claim 47, wherein (a) the recipient device comprises the user interface, and (b) the user interface comprises one or more of: a visual display, an audio speaker, or a tactile output.
 49. The method of claim 43, wherein the one or more processors are powered by one or more of: a battery, a photovoltaic cell, a body heat ambient energy collector, or a body motion ambient energy collector.
 50. The method of claim 43, wherein the time at which the first reading was generated and the time at which the second reading was generated are determined relative to one or more of: time cycles of the one or more processors, readings from the accelerometer, an electric clock, a quartz clock, or a radio-controlled clock that is wirelessly synchronized with an atomic clock.
 51. The method of claim 43 further comprising: adding the double limb support time to a cumulative double limb support time; and providing data associated with the cumulative double limb support time to the recipient device.
 52. A computer program product for determining a double limb support time of a user based at least in part on acceleration data comprising a plurality of acceleration readings, the computer program product comprising non-transitory computer-readable medium storing instructions for execution by a device that cause the device to at least: receive the plurality of acceleration readings, wherein the plurality of acceleration readings is generated by an accelerometer measuring acceleration of the user's arm; identify a first time at which a first reading of the plurality of acceleration readings was generated, wherein the first reading is a lowest local minimum reading during a first window; identify a second time at which a second reading of the plurality of acceleration readings was generated, wherein the second reading is a first occurring reading to exceed a threshold after the first reading; determine the double limb support time by determining a difference between the first time and the second time, wherein the double limb support time is indicative of at least a portion of a step in which the user's weight is at least partially supported on both limbs; and provide data associated with the double limb support time to a recipient device, wherein the recipient device provides a perceivable indication associated with the data.
 53. The computer program product of claim 52, wherein the instructions further cause the device to at least determine a fundamental frequency using an autocorrelation function applied to a plurality of readings of the plurality of acceleration readings and in which a duration of the first window is a fraction of the fundamental frequency.
 54. The computer program product of claim 52, wherein the instructions further cause the device to at least compare double limb support times of one or more even numbered steps to double limb support times of one or more odd numbered steps to determine a measure of symmetry and provide the measure of symmetry to the recipient device.
 55. The computer program product of claim 52, wherein the instructions further cause the device to at least determine a variability measure of a plurality of double limb support times and provide data associated with the variability measure to the recipient device.
 56. The computer program product of claim 52, wherein the recipient device comprises at least one of: a non-transitory computer-readable medium; a recipient device communicatively coupled to the at least one processor using a network; an electromagnetic transmitter; or a user interface.
 57. The computer program product of claim 56, wherein (a) the recipient device comprises the user interface, and (b) the user interface comprises one or more of: a visual display, an audio speaker, or a tactile output.
 58. The computer program product of claim 52, wherein a component of the device powered by one or more of: a battery, a photovoltaic cell, a body heat ambient energy collector, or a body motion ambient energy collector.
 59. The computer program product of claim 52, wherein the time at which the first reading was generated and the time at which the second reading was generated are determined relative to one or more of: time cycles of the at least one processor, readings from the accelerometer, an electric clock, a quartz clock, or a radio-controlled clock that is wirelessly synchronized with an atomic clock.
 60. The computer program product of claim 52, wherein the device: adds the double limb support time to a cumulative double limb support time; and provides data associated with the cumulative double limb support time to the recipient device. 